home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 June / Chip Haziran 2000.iso / prog / basic / 09 / 09.exe / wmploc.DLL / 256 / 142 < prev    next >
Encoding:
Text (UTF-16)  |  2000-03-15  |  29.4 KB  |  526 lines

  1. //  Windows Media Player Transport Controls
  2.  
  3. // All WMP Play and Open states are defined in skins\common\WMPStates.js
  4.  
  5. var g_fIsLiveBroadcast = false;
  6.  
  7. var g_strPlayImage="";
  8. var g_strPlayHover="";
  9. var g_strPlayDown="";
  10. var g_strPauseHover="";
  11. var g_strPauseDown="";
  12. var g_psPlayState=0;
  13. var g_osOpenState=0;
  14. var g_nDownloadProgress = 0;
  15.  
  16. function InitMiniControls()
  17. {
  18.     g_strPlayImage="res://wmploc.dll/RT_BITMAP/#373";
  19.     g_strPlayHover="res://wmploc.dll/RT_BITMAP/#374";
  20.     g_strPlayDown="res://wmploc.dll/RT_BITMAP/#375";
  21.     g_strPauseUp="res://wmploc.dll/RT_BITMAP/#427";
  22.     g_strPauseHover="res://wmploc.dll/RT_BITMAP/#423";
  23.     g_strPauseDown="res://wmploc.dll/RT_BITMAP/#424";
  24.  
  25.     g_strMuteUp="res://wmploc.dll/RT_BITMAP/#365";
  26.     g_strMuteHover="res://wmploc.dll/RT_BITMAP/#366";
  27.     g_strMuteDown="res://wmploc.dll/RT_BITMAP/#367";
  28.     
  29.     g_strSoundUp="res://wmploc.dll/RT_BITMAP/#368";
  30.     g_strSoundHover="res://wmploc.dll/RT_BITMAP/#369";
  31.     g_strSoundDown="res://wmploc.dll/RT_BITMAP/#399";
  32.  
  33.     OnPlayStateChangeEvent();
  34.     OnOpenStateChangeEvent();
  35.     UpdateMuteButton();
  36. }
  37.  
  38. function InitControls()
  39. {
  40.     g_strPlayImage="res://wmploc.dll/RT_BITMAP/#294";
  41.     g_strPlayHover="res://wmploc.dll/RT_BITMAP/#293";
  42.     g_strPlayDown="res://wmploc.dll/RT_BITMAP/#292";
  43.     g_strPauseUp="res://wmploc.dll/RT_BITMAP/#288";
  44.     g_strPauseHover="res://wmploc.dll/RT_BITMAP/#289";
  45.     g_strPauseDown="res://wmploc.dll/RT_BITMAP/#290";
  46.     
  47.     g_strMuteUp="res://wmploc.dll/RT_BITMAP/#282";
  48.     g_strMuteHover="res://wmploc.dll/RT_BITMAP/#280";
  49.     g_strMuteDown="res://wmploc.dll/RT_BITMAP/#281";
  50.  
  51.     g_strSoundUp="res://wmploc.dll/RT_BITMAP/#287";
  52.     g_strSoundHover="res://wmploc.dll/RT_BITMAP/#285";
  53.     g_strSoundDown="res://wmploc.dll/RT_BITMAP/#286";
  54.  
  55.     OnPlayStateChangeEvent();
  56.     OnOpenStateChangeEvent();
  57.     UpdateMuteButton();
  58. }
  59.  
  60.  
  61. function FormatString( value )
  62. {
  63.     value = Math.round(value);
  64.  
  65.     var s = '';
  66.     if ((value / 60) < 10)
  67.     {
  68.         s = '0';
  69.     }
  70.     s = s + Math.floor(value / 60);
  71.  
  72.     s = s + ':';
  73.  
  74.     if ((value % 60) < 10)
  75.     {
  76.         s = s + '0';
  77.     }
  78.     s = s + (value % 60);
  79.     return s;
  80. }
  81.  
  82. var metaDataItems = new Array("Clip", "Title", "Show", "WM/AlbumTitle", "Name", "Author", "Copyright");
  83. var metaDataNames = new Array("Clip", "Title", "Show", "Album", "Name", "Author", "Copyright");
  84.  
  85. var g_iLastMetaDataIndex = 0;
  86. var g_iLastTickCount = 0;
  87. var g_iTickCount = 0;
  88.  
  89. function UpdateMetaData()
  90. {
  91.     var str = "";
  92.  
  93.     if (g_iTickCount > (g_iLastTickCount + 25))
  94.     {
  95.         for (i = 0; i < metaDataItems.length; i++)
  96.         {
  97.             g_iLastMetaDataIndex = (g_iLastMetaDataIndex + 1) % metaDataItems.length;
  98.              str = player.currentmedia.getiteminfo(metaDataItems[g_iLastMetaDataIndex]);
  99.              if (str != "")
  100.             {
  101.                 str = ' ' + metaDataNames[g_iLastMetaDataIndex] + ': ' + str;
  102.                 break;
  103.             }
  104.         }
  105.  
  106.         g_iLastTickCount = g_iTickCount;
  107.         metadata.value = str;
  108.     }
  109. }
  110.  
  111. function UpdateReceptionQuality(playstatestr )
  112. {
  113.     if (g_fIsLiveBroadcast)
  114.     {
  115.         var nReceptionQuality = player.Network.receptionQuality;
  116.         if (nReceptionQuality > 0)
  117.         {
  118.             if(nReceptionQuality == 100)
  119.             {
  120.                 QualityIcon.image = "res://wmploc.dll/RT_IMAGE/qbest.gif";
  121.                 QualityIcon.upToolTip="Perfect Reception";
  122.             }
  123.             else if(nReceptionQuality < 99 &&  nReceptionQuality > 86    )
  124.             {
  125.                 QualityIcon.image = "res://wmploc.dll/RT_IMAGE/qOK.gif";
  126.                 QualityIcon.upToolTip="Network Congestion";
  127.             }
  128.             else if(nReceptionQuality < 86 &&  nReceptionQuality > 0 )
  129.             {
  130.                 QualityIcon.image = "res://wmploc.dll/RT_IMAGE/qbad.gif";
  131.                 QualityIcon.upToolTip="Poor reception";
  132.             }
  133.         }
  134.     }
  135.     
  136.     var nNetBitRate = player.Network.bitrate;
  137.             
  138.     if (nNetBitRate > 0)
  139.     {
  140.         var kbps = Math.floor((player.Network.bitrate / 1000));
  141.         psInfo.value=playstatestr + " (" + kbps + " Kbps)";
  142.         psInfo.tooltip = psInfo.value;
  143.     }
  144.  
  145. }
  146.  
  147.  
  148. function OnTimerTickEvent()
  149. {
  150.     g_iTickCount += 1;
  151.  
  152.     if (osMediaOpen == g_osOpenState)
  153.     {
  154.         if ((g_nDownloadProgress >= 0) && (g_nDownloadProgress < 100))
  155.         {
  156.             g_nDownloadProgress = player.network.downloadProgress;
  157.             metadata.value = "  Downloading..." + g_nDownloadProgress + "%";
  158.         }
  159.         else
  160.         {
  161.             UpdateMetaData();
  162.         }                
  163.            
  164.         switch(g_psPlayState)
  165.         {
  166.             case psUndefined:
  167.             break;
  168.     
  169.             case psScanForward:
  170.                 tracktime.value = FormatString(player.controls.currentposition);
  171.                 UpdateReceptionQuality("Fast Forwarding");            
  172.             break;
  173.  
  174.             case psScanReverse:
  175.                 tracktime.value = FormatString(player.controls.currentposition);
  176.                 UpdateReceptionQuality("Rewinding");            
  177.             break;
  178.  
  179.             case psPlaying:
  180.                 tracktime.value = FormatString(player.controls.currentposition);
  181.                 UpdateReceptionQuality("Playing");            
  182.             break;
  183.     
  184.             case psBuffering:
  185.             var nBuffProgress = player.Network.bufferingProgress;
  186.             metadata.value = nBuffProgress + "%";
  187.             QualityIcon.image = "res://wmploc.dll/RT_IMAGE/buffering.gif";
  188.             QualityIcon.upToolTip="Buffering";
  189.             break;
  190.                 
  191.             default:
  192.             // Do nothing.
  193.         }
  194.  
  195.     }
  196.     
  197. }
  198.  
  199.  
  200. function OnURLChange()
  201. {
  202.     view.title = player.URL;
  203. }
  204.  
  205. function StopPlaying()
  206. {
  207.     tracktime.value = "0:00";
  208. }
  209.  
  210.  
  211. function OnPlayStateChangeEvent()
  212. {
  213.     g_psPlayState = player.PlayState;
  214.     switch (g_psPlayState)
  215.     {
  216.     case psUndefined:
  217.             psInfo.value="";
  218.             seek.foregroundProgress = seek.min;
  219.             play.image=g_strPlayImage;
  220.             play.disabledImage=g_strPlayImage;
  221.             play.hoverImage=g_strPlayHover;
  222.             play.downImage=g_strPlayDown;
  223.             play.upToolTip="Play";
  224.             play.enabled="true";
  225.             rew.down="false";
  226.             ffwd.down="false";
  227.         break;
  228.         
  229.     case psStopped:
  230.             psInfo.value="Stopped";
  231.             QualityIcon.visible=true;
  232.             QualityIcon.image = "res://wmploc.dll/RT_IMAGE/stopped.gif";
  233.             QualityIcon.upToolTip = "Playback stopped";
  234.             play.image=g_strPlayImage;
  235.             play.disabledImage=g_strPlayImage;
  236.             play.hoverImage=g_strPlayHover;
  237.             play.downImage=g_strPlayDown;
  238.             play.upToolTip="Play";
  239.             play.enabled="true";
  240.             ffwd.down="false";
  241.             rew.down="false";
  242.         break;
  243.         
  244.     case psPaused:
  245.             psInfo.value="Paused";
  246.             QualityIcon.visible=true;
  247.             QualityIcon.image = "res://wmploc.dll/RT_IMAGE/paused.gif";
  248.             QualityIcon.upToolTip = "Playback paused";
  249.             play.image=g_strPlayImage;
  250.             play.disabledImage=g_strPlayImage;
  251.             play.hoverImage=g_strPlayHover;
  252.             play.downImage=g_strPlayDown;
  253.             play.upToolTip="Play";
  254.             play.enabled="true";
  255.             ffwd.down="false";
  256.             rew.down="false";
  257.         break;
  258.         
  259.     case psPlaying:
  260.             psInfo.value="Playing";
  261.             QualityIcon.visible= g_fIsLiveBroadcast;
  262.             play.image=g_strPauseUp;
  263.             play.disabledImage=g_strPauseUp;
  264.             play.hoverImage=g_strPauseHover;
  265.             play.downImage=g_strPauseDown;
  266.             play.upToolTip="Pause";
  267.             play.enabled=!g_fIsLiveBroadcast;
  268.             ffwd.down="false";
  269.             rew.down="false";
  270.         break;
  271.         
  272.     case psWaiting:
  273.             psInfo.value="Waiting";
  274.             QualityIcon.visible= g_fIsLiveBroadcast;
  275.             play.Image=g_strPauseUp;
  276.             play.disabledImage=g_strPauseUp;
  277.             play.hoverImage=g_strPauseHover;
  278.             play.downImage=g_strPauseDown;
  279.             play.upToolTip="Pause";
  280.             play.enabled=!g_fIsLiveBroadcast;
  281.             rew.down="false";
  282.             ffwd.down="false";
  283.         break;
  284.         
  285.     case psScanForward:
  286.             play.Image=g_strPauseUp;
  287.             QualityIcon.visible= g_fIsLiveBroadcast;
  288.             play.hoverImage=g_strPauseHover;
  289.             play.disabledImage=g_strPauseUp;
  290.             play.downImage=g_strPauseDown;
  291.             play.upToolTip="Pause";
  292.             play.enabled=!g_fIsLiveBroadcast;
  293.             psInfo.value="Fast Forwarding";
  294.             rew.down="false";
  295.             ffwd.down="true";
  296.         break;
  297.         
  298.     case psScanReverse:
  299.             play.Image=g_strPauseUp;
  300.             QualityIcon.visible= g_fIsLiveBroadcast;
  301.             play.hoverImage=g_strPauseHover;
  302.             play.disabledImage=g_strPauseUp;
  303.             play.downImage=g_strPauseDown;
  304.             play.upToolTip="Pause";
  305.             play.enabled=!g_fIsLiveBroadcast;
  306.             psInfo.value="Fast Forwarding";
  307.             psInfo.value="Rewinding";
  308.             rew.down="true";
  309.             ffwd.down="false";
  310.         break;
  311.         
  312.     case psBuffering:
  313.             if (osMediaOpen == g_osOpenState)
  314.             {
  315.                 QualityIcon.visible=true;
  316.                 psInfo.value="Buffering";
  317.             }
  318.         break;
  319.         
  320.     case psMediaEnded:
  321.             psInfo.value="Media ended";
  322.         break;
  323.     }
  324.  
  325.     psInfo.tooltip = psInfo.value;
  326. }
  327.  
  328.  
  329. function playOnClick()
  330. {
  331.     if ((player.PlayState == psPlaying)||
  332.         (player.PlayState == psScanReverse) ||
  333.         (player.PlayState == psScanForward))
  334.     {
  335.         player.controls.pause();
  336.     }
  337.     else
  338.     {
  339.         player.controls.play();
  340.     }
  341.     OnPlayStateChangeEvent();
  342. }
  343.  
  344. function volumeOnChange()
  345. {
  346.     player.settings.mute=false;
  347.     UpdateMuteButton();
  348. }
  349.  
  350. function muteOnClick()
  351. {
  352.     if (player.settings.mute == true)
  353.     {
  354.         player.settings.mute=false;
  355.     }
  356.     else
  357.     {
  358.         player.settings.mute=true;
  359.     }
  360.     UpdateMuteButton();
  361. }
  362.  
  363. function UpdateMuteButton()
  364. {
  365. /*
  366.     if (player.settings.mute == true)
  367.     {
  368.         mute.upToolTip = "Sound";
  369.         mute.image = g_strMuteUp;
  370.         mute.hoverImage = g_strMuteHover;
  371.         mute.downImage = g_strMuteDown;
  372.     }
  373.     else
  374.     {
  375.         mute.upToolTip = "Mute";
  376.         mute.image = g_strSoundUp;
  377.         mute.hoverImage = g_strSoundHover;
  378.         mute.downImage = g_strSoundDown;
  379.     }
  380. */
  381. }
  382.  
  383. function OnOpenStateChangeEvent()
  384. {
  385.     var temp, str, strType;
  386.     
  387.     g_osOpenState = player.OpenState;
  388.  
  389.     switch (g_osOpenState)
  390.     {
  391.     case osUndefined:
  392.         play.enabled="false";
  393.         metadata.value = "";
  394.         break;
  395.     case osMediaOpen: 
  396.     strType = player.currentmedia.getiteminfo("Type");
  397.     if (strType == "broadcast")
  398.     {
  399.         g_fIsLiveBroadcast = true;
  400.     }
  401.     else
  402.     {
  403.         g_fIsLiveBroadcast = false;
  404.     }
  405.     seek.enabled = !g_fIsLiveBroadcast;
  406.         play.enabled="true";
  407.         metadata.value = "";
  408.         break;
  409.     case osPlaylistChanging:
  410.         play.enabled="false";
  411.         metadata.value = " Playlist changing";
  412.         break;
  413.     case osPlaylistLocating:
  414.         play.enabled="false";
  415.         metadata.value = " Locating playlist";
  416.         break;
  417.     case osPlaylistConnecting:
  418.         play.enabled="false";
  419.         metadata.value = " Connecting playlist";
  420.         break;
  421.     case osPlaylistLoading:
  422.         play.enabled="false";
  423.         metadata.value = " Loading playlist";
  424.         break;
  425.     case osPlaylistOpening:
  426.         play.enabled="false";
  427.         metadata.value = " Opening playlist";
  428.         break;
  429.     case osPlaylistOpenNoMedia:
  430.         play.enabled="true";
  431.         metadata.value = " Playlist: No Open Media";
  432.         break;
  433.     case osPlaylistChanged:
  434.         play.enabled="true";
  435.         metadata.value = "";
  436.         break;
  437.     case osMediaChanging:
  438.         play.enabled="false";
  439.         metadata.value = " Media Changing";
  440.         QualityIcon.visible = false;
  441.         break;
  442.     case osMediaLocating:
  443.         play.enabled="false";
  444.         metadata.value = " Locating Media";
  445.         QualityIcon.visible=true;
  446.         QualityIcon.image = "res://wmploc.dll/RT_IMAGE/locating.gif";
  447.         QualityIcon.upToolTip="Locating Media";
  448.         break;
  449.     case osMediaConnecting:
  450.         play.enabled="false";
  451.         metadata.value = " Connecting";
  452.     QualityIcon.visible=true;
  453.     QualityIcon.image = "res://wmploc.dll/RT_IMAGE/locating.gif"; // uses same image as Locating
  454.     QualityIcon.upToolTip="Connecting";
  455.         break;
  456.     case osMediaLoading:
  457.         play.enabled="false";
  458.         metadata.value = " Loading Media";
  459.         break;
  460.     case osMediaWaiting:
  461.         strType = player.currentmedia.getiteminfo("Type");
  462.     if (strType == "broadcast")
  463.     {
  464.         g_fIsLiveBroadcast = true;
  465.     }
  466.     else
  467.     {
  468.         g_fIsLiveBroadcast = false;
  469.     }
  470.         play.enabled="false";
  471.         metadata.value = " Waiting";
  472.         g_nDownloadProgress = 0;
  473.         break;
  474.     case osMediaOpening:
  475.         play.enabled="false";
  476.         metadata.value = " Opening Media";
  477.         QualityIcon.visible=true;
  478.         QualityIcon.image = "res://wmploc.dll/RT_IMAGE/opening.gif";
  479.         QualityIcon.upToolTip="Opening";
  480.         g_nDownloadProgress = 0;
  481.         break;
  482.     case osCodecServerLocating:
  483.         play.enabled="false";
  484.         metadata.value = " Locating codec server";
  485.         break;
  486.     case osCodecServerConnecting:
  487.         play.enabled="false";
  488.         metadata.value = " Connecting to codec server";
  489.         break;
  490.     case osCodecServerLoading:
  491.         play.enabled="false";
  492.         metadata.value = " Downloading codec";
  493.         break;
  494.     case osCodecInstalling:
  495.         play.enabled="false";
  496.         metadata.value = " Installing codec";
  497.         break;
  498.     case osBeginLicenseAcquisition:
  499.         play.enabled="false";
  500.         metadata.value = " Starting license acquisition";
  501.         break;
  502.     case osEndLicenseAcquisition:
  503.         play.enabled="false";
  504.         metadata.value = " Done acquiring license";
  505.         break;
  506.     case osBeginIndividualization:
  507.         play.enabled="false";
  508.         metadata.value = " Starting Individualization";
  509.         break;
  510.     case osEndIndividualization:
  511.         play.enabled="false";
  512.         metadata.value = " Done Individualizing";
  513.         break;
  514.     default:
  515.         // This should never happen
  516.         play.enabled="false";
  517.     }
  518.     
  519. }
  520.  
  521. function OnDisconnect()
  522. {
  523.     psInfo.value="Disconnected";
  524.     psInfo.tooltip = psInfo.value;
  525. }
  526.